package com.link.base.base.sms.service;

import com.link.base.base.sms.dao.mybatis.mapper.TemparameterMapper;
import com.link.base.sms.model.SmsSend;
import com.link.base.sms.model.Temparameter;
import com.link.base.sms.model.Template;
import com.link.core.basic.dao.mapper.BasicMapper;
import com.link.core.basic.service.BasicServiceImpl;
import com.link.core.util.StringUtils;
import com.link.core.cllog.LCLogger;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

/**
 * @Author: liulu
 * @Date:15:37 2018/11/5
 */
@Service
public class TemparameterServiceImpl extends BasicServiceImpl<Temparameter> implements TemparameterService {


    @Resource
    private TemparameterMapper temparameterMapper;

    @Override
    public BasicMapper<Temparameter> getBasicMapper() {
        return temparameterMapper;
    }

    /**
     * 把模板中的参数保存
     *
     * @param smsSend
     * @return
     */
    @Override
    public Long inserbyTemplate(SmsSend smsSend) {
        //获取模板
        Template te = smsSend.getTemplate();
        Temparameter temparameter = new Temparameter();
        if (!StringUtils.isNull(te.getParameter1())) {
            //判断参数是否是用户名
            String nameStr = "{name}";
            if (nameStr.equals(te.getParameter1())) {
                temparameter.setParameter1(smsSend.getSmsAccntLineList().get(0).getAcctName());
            } else {
                temparameter.setParameter1(te.getParameter1());
            }
            if (!StringUtils.isNull(te.getParameter2())) {
                if (nameStr.equals(te.getParameter2())) {
                    temparameter.setParameter2(smsSend.getSmsAccntLineList().get(0).getAcctName());
                } else {
                    temparameter.setParameter2(te.getParameter2());
                }

                if (!StringUtils.isNull(te.getParameter3())) {
                    if (nameStr.equals(te.getParameter3())) {
                        temparameter.setParameter3(smsSend.getSmsAccntLineList().get(0).getAcctName());
                    } else {
                        temparameter.setParameter3(te.getParameter3());
                    }
                    if (!StringUtils.isNull(te.getParameter4())) {
                        if (nameStr.equals(te.getParameter4())) {
                            temparameter.setParameter4(smsSend.getSmsAccntLineList().get(0).getAcctName());
                        } else {
                            temparameter.setParameter4(te.getParameter4());
                        }
                        if (!StringUtils.isNull(te.getParameter5())) {
                            if (nameStr.equals(te.getParameter5())) {
                                temparameter.setParameter5(smsSend.getSmsAccntLineList().get(0).getAcctName());
                            } else {
                                temparameter.setParameter5(te.getParameter5());
                            }
                            if (!StringUtils.isNull(te.getParameter6())) {
                                if (nameStr.equals(te.getParameter6())) {
                                    temparameter.setParameter6(smsSend.getSmsAccntLineList().get(0).getAcctName());
                                } else {
                                    temparameter.setParameter6(te.getParameter6());
                                }
                                if (!StringUtils.isNull(te.getParameter7())) {
                                    if (nameStr.equals(te.getParameter7())) {
                                        temparameter.setParameter7(smsSend.getSmsAccntLineList().get(0).getAcctName());
                                    } else {
                                        temparameter.setParameter7(te.getParameter7());
                                    }
                                    if (!StringUtils.isNull(te.getParameter8())) {
                                        if (nameStr.equals(te.getParameter8())) {
                                            temparameter.setParameter8(smsSend.getSmsAccntLineList().get(0).getAcctName());
                                        } else {
                                            temparameter.setParameter8(te.getParameter8());
                                        }
                                        if (!StringUtils.isNull(te.getParameter9())) {
                                            if (nameStr.equals(te.getParameter9())) {
                                                temparameter.setParameter9(smsSend.getSmsAccntLineList().get(0).getAcctName());
                                            } else {
                                                temparameter.setParameter9(te.getParameter9());
                                            }
                                            if (!StringUtils.isNull(te.getParameter10())) {
                                                if (nameStr.equals(te.getParameter10())) {
                                                    temparameter.setParameter10(smsSend.getSmsAccntLineList().get(0).getAcctName());
                                                } else {
                                                    temparameter.setParameter10(te.getParameter10());
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        temparameter.setTemId(te.getId());
        temparameter.setId(keyGenerateService.keyGenerate());
        try {
            temparameterMapper.insert(temparameter);
        } catch (Exception e) {
            LCLogger.withException(e);
        }
        return temparameter.getId();
    }
}
